Skip to content

MSVC determinism feature should use /Brepro with linking#713

Open
b-spencer wants to merge 1 commit into
bazelbuild:mainfrom
b-spencer:patch-1
Open

MSVC determinism feature should use /Brepro with linking#713
b-spencer wants to merge 1 commit into
bazelbuild:mainfrom
b-spencer:patch-1

Conversation

@b-spencer
Copy link
Copy Markdown

The /Brepro (undocumented) argument to MSVC applies to both the compiler and the linker.

The recent commit 94bda81 in #408 fixed determinism with MSVC by passing the argument to the compiler, but not the linker.

Since the flag is undocumented, it is not clear whether it makes a difference when linking MSVC-compiled objects that were themselves compiled with /Brepro, but passing it to the linker helps ensure that it is applies in all cases, such as when linker is used with objects built from other languages.

This change adds all_link_actions to the list of actions that get the argument.

See llvm/llvm-project#37777 for some of the scant documentation thatlld-link (and thus real link.exe) accepts this option.

The `/Brepro` (undocumented) argument to MSVC applies to both the compiler and the linker.

The recent commit 94bda81 in bazelbuild#408 fixed determinism with MSVC by passing the argument to the compiler, but not the linker.  

Since the flag is undocumented, it is not clear whether it makes a difference when linking MSVC-compiled objects that were themselves compiled with `/Brepro`, but passing it to the linker, too, helps ensure that it is applies in all cases, such as cases were the linker is used on objects built from other languages.

This change adds `all_link_actions` to the list of actions that get the argument.

See llvm/llvm-project#37777 for some of the scant documentation that`lld-link` (and thus real `link.exe`) accepts this option.
@google-cla
Copy link
Copy Markdown

google-cla Bot commented May 8, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant